home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / general / hdf / unix / hdf3_2r2.lha / HDF3.2r2 / test / tsdnnt.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-10-28  |  11.0 KB  |  426 lines

  1. /***************************************************************************
  2. *
  3. *
  4. *                         NCSA HDF version 3.2r2
  5. *                            October 30, 1992
  6. *
  7. * NCSA HDF Version 3.2 source code and documentation are in the public
  8. * domain.  Specifically, we give to the public domain all rights for future
  9. * licensing of the source code, all resale rights, and all publishing rights.
  10. *
  11. * We ask, but do not require, that the following message be included in all
  12. * derived works:
  13. *
  14. * Portions developed at the National Center for Supercomputing Applications at
  15. * the University of Illinois at Urbana-Champaign, in collaboration with the
  16. * Information Technology Institute of Singapore.
  17. *
  18. * THE UNIVERSITY OF ILLINOIS GIVES NO WARRANTY, EXPRESSED OR IMPLIED, FOR THE
  19. * SOFTWARE AND/OR DOCUMENTATION PROVIDED, INCLUDING, WITHOUT LIMITATION,
  20. * WARRANTY OF MERCHANTABILITY AND WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE
  21. *
  22. ****************************************************************************
  23. */
  24.  
  25. #ifdef RCSID
  26. static char RcsId[] = "@(#)$Revision: 1.5 $";
  27. #endif
  28. /*
  29. $Header: /hdf/hdf/v3.2r2/test/RCS/tsdnnt.c,v 1.5 1992/07/09 16:07:09 chouck beta koziol $
  30.  
  31. $Log: tsdnnt.c,v $
  32.  * Revision 1.5  1992/07/09  16:07:09  chouck
  33.  * Added header
  34.  *
  35.  * Revision 1.4  1992/05/31  15:30:06  mfolk
  36.  * Changed type of rank and dims[2] from int to int32 for Convex.
  37.  *
  38.  * Revision 1.3  1992/05/28  15:12:18  chouck
  39.  * Made all test files have thr string '.hdf' somewhere in their name
  40.  *
  41.  * Revision 1.2  1992/04/28  18:26:38  dilg
  42.  * Changed absolute path to relative path for include files.
  43.  *
  44.  * Revision 1.1  1992/04/27  17:31:08  sxu
  45.  * Initial revision
  46.  *
  47.  * Revision 1.2  1992/03/24  20:42:04  sxu
  48.  * Changed output file names
  49.  *
  50.  * Revision 1.1  1992/02/26  20:07:41  mfolk
  51.  * Initial revision
  52.  *
  53. */
  54.  
  55. /***********************************************************
  56. *
  57. * Program to test use of native mode number types in SDS.
  58. * Creates arrays of all types.
  59. * Stores arrays in individual files and reads them back.
  60. * Stores all arrays in one file and reads them back.
  61. *
  62. * NOTE: Default HDF mode not tested in this program. See tsdnt.c
  63. *       for same tests applied to default mode.
  64. *
  65. *************************************************************/
  66.  
  67. #include "hdf.h"
  68. #include "dfsd.h"
  69.  
  70. float64 f64[10][10], tf64[10][10];
  71. float32 f32[10][10], tf32[10][10];
  72. int8 i8[10][10], ti8[10][10];
  73. uint8 ui8[10][10], tui8[10][10];
  74. int16 i16[10][10], ti16[10][10];
  75. uint16 ui16[10][10], tui16[10][10];
  76. int32 i32[10][10], ti32[10][10];
  77. uint32 ui32[10][10], tui32[10][10];
  78.  
  79. int main()
  80. {
  81.     int i, j, err;
  82.     int32 rank;
  83.     int32 dims[2];
  84.     int number_failed = 0;
  85.  
  86.     rank = 2;
  87.     dims[0] = 10;
  88.     dims[1] = 10;
  89.  
  90.     printf("Creating arrays...\n");
  91.  
  92.     for (i=0; i<10; i++) {
  93.         for (j=0; j<10; j++) {
  94.  
  95.         f64[i][j] = (i * 10) + j;    /* range: 0 ~ 4-billion */
  96.  
  97.         f32[i][j] = (i * 10) + j;    /* range: 0 ~ 4-billion */
  98.  
  99.         i8[i][j] = (i * 10) + j;    /* range: 0 ~ 100 */
  100.         ui8[i][j] = (i * 20) + j;    /* range: 0 ~ 200 */
  101.  
  102.         i16[i][j] = (i * 10) + j;    /* range: 0 ~ 30000 */
  103.         ui16[i][j] = (i * 20) + j;    /* range: 0 ~ 60000 */
  104.  
  105.         i32[i][j] = (i * 10L) + j;    /* range: 0 ~ 2-billion */
  106.         ui32[i][j] = (i * 20) + j;    /* range: 0 ~ 4-billion */
  107.     }
  108.     }
  109.  
  110.     DFSDsetdims(rank, dims);
  111.  
  112.     /* individual files */
  113.     printf("Testing arrays in individual files...\n");
  114.  
  115.     DFSDsetNT(DFNT_NFLOAT64);
  116.     err = DFSDadddata("con00.hdf", rank, dims, f64);
  117.     printf("Write: %d     ", err);        
  118.     err = DFSDgetdata("con00.hdf", rank, dims, tf64);
  119.     HEprint(stderr, 0);
  120.     printf("Read: %d\n", err);
  121.     err = 0;
  122.     for (i=0; i<10; i++)
  123.     for (j=0; j<10; j++) {
  124.         if (f64[i][j] != tf64[i][j])
  125.             err = 1;
  126.         tf64[i][j] = 0.0;
  127.     }
  128.     if (err == 1) {
  129.     printf(">>> Test failed for float64 array.\n");
  130.     number_failed++;
  131.     }
  132.     else
  133.     printf("Test passed for float64 array.\n");    
  134.     
  135.     DFSDsetNT(DFNT_NFLOAT32);
  136.     err = DFSDadddata("con0.hdf", rank, dims, f32);
  137.     printf("Write: %d     ", err);        
  138.     err = DFSDgetdata("con0.hdf", rank, dims, tf32);
  139.     HEprint(stderr, 0);
  140.     printf("Read: %d\n", err);
  141.     err = 0;
  142.     for (i=0; i<10; i++)
  143.     for (j=0; j<10; j++) {
  144.         if (f32[i][j] != tf32[i][j])
  145.             err = 1;
  146.         tf32[i][j] = 0.0;
  147.     }
  148.     if (err == 1) {
  149.     printf(">>> Test failed for float32 array.\n");
  150.     number_failed++;
  151.     }
  152.     else
  153.     printf("Test passed for float32 array.\n");    
  154.     
  155.  
  156.     DFSDsetNT(DFNT_NINT8);
  157.     err = DFSDadddata("con1.hdf", rank, dims, i8);
  158.     printf("Write: %d     ", err);
  159.     err = DFSDgetdata("con1.hdf", rank, dims, ti8);
  160.     printf("Read: %d\n", err);
  161.     err = 0;
  162.     for (i=0; i<10; i++)
  163.     for (j=0; j<10; j++) {
  164.         if (i8[i][j] != ti8[i][j])
  165.             err = 1;
  166.         ti8[i][j] = 0;
  167.     }
  168.     if (err == 1) {
  169.     printf(">>> Test failed for int8 array.\n");
  170.     number_failed++;
  171.     }
  172.     else
  173.     printf("Test passed for int8 array.\n");
  174.  
  175.     DFSDsetNT(DFNT_NUINT8);
  176.     err = DFSDadddata("con2.hdf", rank, dims, ui8);
  177.     printf("Write: %d     ", err);
  178.     err = DFSDgetdata("con2.hdf", rank, dims, tui8);
  179.     printf("Read: %d\n", err);
  180.     err = 0;
  181.     for (i=0; i<10; i++) {
  182.       for (j=0; j<10; j++) {
  183.         if (ui8[i][j] != tui8[i][j])
  184.             err = 1;
  185.         tui8[i][j] = 0;
  186.       }
  187.     }
  188.     if (err == 1 ) {
  189.     printf(">>> Test failed for uint8 array.\n");
  190.     number_failed++;
  191.     }
  192.     else
  193.     printf("Test passed for uint8 array.\n");
  194.  
  195.     DFSDsetNT(DFNT_NINT16);
  196.     err = DFSDadddata("con3.hdf", rank, dims, i16);
  197.     printf("Write: %d     ", err);
  198.     err = DFSDgetdata("con3.hdf", rank, dims, ti16);
  199.     printf("Read: %d\n", err);
  200.     err = 0;
  201.     for (i=0; i<10; i++)
  202.     for (j=0; j<10; j++) {
  203.         if (i16[i][j] != ti16[i][j])
  204.             err = 1;
  205.         ti16[i][j] = 0;
  206.     }
  207.     if (err == 1 ) {
  208.     printf(">>> Test failed for int16 array.\n");
  209.     number_failed++;
  210.     }
  211.     else
  212.     printf("Test passed for int16 array.\n");
  213.  
  214.     DFSDsetNT(DFNT_NUINT16);
  215.     err = DFSDadddata("con4.hdf", rank, dims, ui16);
  216.     printf("Write: %d     ", err);
  217.     err = DFSDgetdata("con4.hdf", rank, dims, tui16);
  218.     printf("Read: %d\n", err);
  219.     err = 0;
  220.     for (i=0; i<10; i++)
  221.     for (j=0; j<10; j++) {
  222.         if (ui16[i][j] != tui16[i][j])
  223.             err = 1;
  224.         tui16[i][j] = 0;
  225.     }
  226.     if (err == 1 ) {
  227.     printf(">>> Test failed for uint16 array.\n");
  228.     number_failed++;
  229.     }
  230.     else
  231.     printf("Test passed for uint16 array.\n");
  232.  
  233.     DFSDsetNT(DFNT_NINT32);
  234.     err = DFSDadddata("con5.hdf", rank, dims, i32);
  235.     printf("Write: %d     ", err);
  236.     err = DFSDgetdata("con5.hdf", rank, dims, ti32);
  237.     printf("Read: %d\n", err);
  238.     err = 0;
  239.     for (i=0; i<10; i++)
  240.     for (j=0; j<10; j++) {
  241.         if (i32[i][j] != ti32[i][j])
  242.             err = 1;
  243.         ti32[i][j] = 0;
  244.     }
  245.     if (err == 1 ) {
  246.     printf(">>> Test failed for int32 array.\n");
  247.     number_failed++;
  248.     }
  249.     else
  250.     printf("Test passed for int32 array.\n");
  251.  
  252.     DFSDsetNT(DFNT_NUINT32);
  253.     err = DFSDadddata("con6.hdf", rank, dims, ui32);
  254.     printf("Write: %d     ", err);
  255.     err = DFSDgetdata("con6.hdf", rank, dims, tui32);
  256.     printf("Read: %d\n", err);
  257.     err = 0;
  258.     for (i=0; i<10; i++) {
  259.       for (j=0; j<10; j++) {
  260.         if (ui32[i][j] != tui32[i][j])
  261.             err = 1;
  262.         tui32[i][j] = 0;
  263.       }
  264.     }
  265.     if (err == 1 ) {
  266.     printf(">>> Test failed for uint32 array.\n");
  267.     number_failed++;
  268.     }
  269.     else
  270.     printf("Test passed for uint32 array.\n");
  271.  
  272.  
  273.     printf("Writing arrays to single file... ");
  274.  
  275.     DFSDsetNT(DFNT_NFLOAT64);
  276.     err = DFSDadddata("con.hdf", rank, dims, f64);
  277.     printf("%d  ", err);
  278.  
  279.     DFSDsetNT(DFNT_NFLOAT32);
  280.     err = DFSDadddata("con.hdf", rank, dims, f32);
  281.     printf("%d  ", err);
  282.     DFSDsetNT(DFNT_NINT8);
  283.     err = DFSDadddata("con.hdf", rank, dims, i8);
  284.     printf("%d  ", err);
  285.     DFSDsetNT(DFNT_NUINT8);
  286.     err = DFSDadddata("con.hdf", rank, dims, ui8);
  287.     printf("%d  ", err);
  288.     DFSDsetNT(DFNT_NINT16);
  289.     err = DFSDadddata("con.hdf", rank, dims, i16);
  290.     printf("%d  ", err);
  291.     DFSDsetNT(DFNT_NUINT16);
  292.     err = DFSDadddata("con.hdf", rank, dims, ui16);
  293.     printf("%d  ", err);
  294.     DFSDsetNT(DFNT_NINT32);
  295.     err = DFSDadddata("con.hdf", rank, dims, i32);
  296.     printf("%d  ", err);
  297.     DFSDsetNT(DFNT_NUINT32);
  298.     err = DFSDadddata("con.hdf", rank, dims, ui32);
  299.     printf("%d\n\n", err);
  300.  
  301.     printf("Reading arrays from single file... ");
  302.  
  303.     err = DFSDgetdata("con.hdf", rank, dims, tf64);
  304.     printf("%d  ", err);
  305.  
  306.     err = DFSDgetdata("con.hdf", rank, dims, tf32);
  307.     printf("%d  ", err);
  308.     err = DFSDgetdata("con.hdf", rank, dims, ti8);
  309.     printf("%d  ", err);
  310.     err = DFSDgetdata("con.hdf", rank, dims, tui8);
  311.     printf("%d  ", err);
  312.     err = DFSDgetdata("con.hdf", rank, dims, ti16);
  313.     printf("%d  ", err);
  314.     err = DFSDgetdata("con.hdf", rank, dims, tui16);
  315.     printf("%d  ", err);
  316.     err = DFSDgetdata("con.hdf", rank, dims, ti32);
  317.     printf("%d  ", err);
  318.     err = DFSDgetdata("con.hdf", rank, dims, tui32);
  319.     printf("%d\n", err);
  320.  
  321.     printf("Checking arrays from single file...\n\n");
  322.     
  323.     err = 0;
  324.     for (i=0; i<10; i++)
  325.     for (j=0; j<10; j++)
  326.        if (f64[i][j] != tf64[i][j])
  327.            err = 1;
  328.     if (err == 1 ) {
  329.     printf(">>> Test failed for float64 array.\n");
  330.     number_failed++;
  331.     }
  332.     else
  333.     printf("Test passed for float64 array.\n");
  334.  
  335.     err = 0;
  336.     for (i=0; i<10; i++)
  337.     for (j=0; j<10; j++)
  338.        if (f32[i][j] != tf32[i][j])
  339.            err = 1;
  340.     if (err == 1 ) {
  341.     printf(">>> Test failed for float32 array.\n");
  342.     number_failed++;
  343.     }
  344.     else
  345.     printf("Test passed for float32 array.\n");
  346.  
  347.     err = 0;
  348.     for (i=0; i<10; i++)
  349.     for (j=0; j<10; j++)
  350.        if (i8[i][j] != ti8[i][j])
  351.            err = 1;
  352.     if (err == 1 ) {
  353.     printf(">>> Test failed for int8 array.\n");
  354.     number_failed++;
  355.     }
  356.     else
  357.     printf("Test passed for int8 array.\n");
  358.  
  359.     err = 0;
  360.     for (i=0; i<10; i++)
  361.     for (j=0; j<10; j++)
  362.        if (ui8[i][j] != tui8[i][j])
  363.            err = 1;
  364.     if (err == 1 ) {
  365.     printf(">>> Test failed for uint8 array.\n");
  366.     number_failed++;
  367.     }
  368.     else
  369.     printf("Test passed for uint8 array.\n");
  370.  
  371.     err = 0;
  372.     for (i=0; i<10; i++)
  373.     for (j=0; j<10; j++)
  374.        if (i16[i][j] != ti16[i][j])
  375.            err = 1;
  376.     if (err == 1 ) {
  377.     printf(">>> Test failed for int16 array.\n");
  378.     number_failed++;
  379.     }
  380.     else
  381.     printf("Test passed for int16 array.\n");
  382.  
  383.     err = 0;
  384.     for (i=0; i<10; i++)
  385.     for (j=0; j<10; j++)
  386.        if (ui16[i][j] != tui16[i][j])
  387.            err = 1;
  388.     if (err == 1 ) {
  389.     printf(">>> Test failed for uint16 array.\n");
  390.     number_failed++;
  391.     }
  392.     else
  393.     printf("Test passed for uint16 array.\n");
  394.  
  395.     err = 0;
  396.     for (i=0; i<10; i++)
  397.     for (j=0; j<10; j++)
  398.        if (i32[i][j] != ti32[i][j])
  399.            err = 1;
  400.     if (err == 1 ) {
  401.     printf(">>> Test failed for int32 array.\n");
  402.     number_failed++;
  403.     }
  404.     else
  405.     printf("Test passed for int32 array.\n");
  406.  
  407.     err = 0;
  408.     for (i=0; i<10; i++)
  409.     for (j=0; j<10; j++)
  410.        if (ui32[i][j] != tui32[i][j])
  411.            err = 1;
  412.     if (err == 1 ) {
  413.     printf(">>> Test failed for uint32 array.\n");
  414.     number_failed++;
  415.     }
  416.     else
  417.     printf("Test passed for uint32 array.\n");
  418.  
  419.     if (number_failed > 0 ) {
  420.     printf("\n\t>>> %d TESTS FAILED <<<\n\n", number_failed);
  421.     }
  422.     else
  423.     printf("\n\t>>> ALL TESTS PASSED <<<\n\n");
  424.  
  425. }
  426.